package cn.itsource.basic.util;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 返回异步结果的统一对象
 */
@Data
@AllArgsConstructor //有所有参数的构造
@NoArgsConstructor //无参构造
@ApiModel(value="异步返回结果信息", description="异步的状态码，数据")
public class AjaxResult {

    @ApiModelProperty(value="状态码,0000代表成功,1000系统错误,1001登录异常")
    private String code = Constant.SUCCESS_CODE; //代表成功
    @ApiModelProperty(value="成功是否状态")
    private Boolean success = true;
    @ApiModelProperty(value="信息")
    private String message = "OK";

    //携带数据回去
    @ApiModelProperty(value="数据")
    private Object data;


    /**
     * 返回成功，不携带数据
     */
    public static AjaxResult createSuccess(){
        return new AjaxResult();
    }
    /**
     * 返回成功，携带数据
     */
    public static AjaxResult createSuccess(Object data){
        return new AjaxResult(Constant.SUCCESS_CODE,true,"OK",data);
    }



    /**
     * 返回失败对象,不指定错误码
     *
     */
    public static AjaxResult createError(String message){
        //方法重载调用，
       return createError(Constant.SYSTEM_ERROR_CODE,message);
    }


    /**
     * 返回失败对象
     * code:支持你自己传错误码
     * message：错误信息
     */
    public static AjaxResult createError(String code,String message){
        return new AjaxResult(code,false,message,null);
    }

}
